package api

import (
	"encoding/json"
	"land/config"
	"land/models"
	"log"
	"net/http"
)

// 用户注册的处理函数
func RegisterHandler(w http.ResponseWriter, r *http.Request) {
	config.AllowCors(w) // 允许跨域请求

	if r.Method == http.MethodOptions {
		// 对预检请求返回 200
		w.WriteHeader(http.StatusOK)
		return
	}

	var newUser models.User
	// 解析 JSON 请求体
	if err := json.NewDecoder(r.Body).Decode(&newUser); err != nil {
		http.Error(w, "无效的请求数据", http.StatusBadRequest)
		return
	}

	// 检查 Userpic 是否为 nil，使用默认值
	if newUser.Userpic == nil {
		defaultUserpic := config.DefaultUserpicPath // 设置默认值
		newUser.Userpic = &defaultUserpic
	}

	// 密码处理（例如加密）
	// newUser.Password = hashPassword(newUser.Password)

	// 保存用户到数据库
	if err := config.Db.Create(&newUser).Error; err != nil {
		http.Error(w, "注册失败", http.StatusInternalServerError)
		log.Printf("注册用户时出错: %v", err)
		return
	}

	//返回用户信息
	w.Header().Set("Content-Type", "application/json")
	response := map[string]interface{}{
		"uid":      newUser.ID,
		"username": newUser.Username,
		"userpic":  newUser.Userpic,
	}
	json.NewEncoder(w).Encode(response)

}
